草庐IT

C++ 多重虚拟继承与 COM

全部标签

windows - 我什么时候应该在 HKCR\Interface 中注册我的 COM 接口(interface)?

原来有一个HKCR\Interface子树,我可以在其中注册我新引入的COM接口(interface)。当我得到它时,我会在两种情况下需要它:如果我想启用编码-那么我可以在那里注册代理/stub如果我想发布有关我的组件的更多信息,以便其他开发人员可以查找接口(interface)ID并在HKCR\Interface{InterfaceId}\Default值下找到它的人类可读名称。还有什么其他场景需要在HKCR\Interface注册我的接口(interface)吗? 最佳答案 可以将指向接口(interface)类型库的链接放在H

windows - Windows 中的虚拟打印机,从哪里开始?

我想在Windows上编写一个程序(或驱动程序),它可以:-当用户打开打印对话框时显示在打印机列表上-显示配置打印的可选对话框-打印到文件简而言之,我的需求非常接近可以将任何文档打印为pdf文件的pdf打印机。感谢您的回答。 最佳答案 我认为您几乎已经回答了您自己的问题:我将查看其中一个开源实现并了解它们是如何实现的:例如PDFCreator。在线浏览代码:http://pdfcreator.svn.sourceforge.net/viewvc/pdfcreator/trunk/查看:svncohttp://pdfcreator.s

.net - 如何检测 .NET 应用程序是否正在使用我的 COM 对象?

我有一个用VisualC++编写的COMDLL。我完全控制那个COMDLL代码。当然,它可以从托管和非托管应用程序中使用。我想插入一个非常具体的检查,该检查只应在​​.NET应用程序使用COMDLL时运行。我的COM对象是否有某种编程方式来检测它是从.NET应用程序还是从非托管应用程序使用? 最佳答案 这类“我的环境是什么”的问题总是有相同的答案。您的主机很容易确定它是否被管理,只需在您的界面上添加一个属性让它告诉您。与替代方案相比,这是一个微不足道的解决方案。在COM中不可能可靠地实现,有很多托管服务器的方法。

c# - 为 Windows 7 桌面开发我自己的虚拟键盘

我想为我的Windows7平板电脑构建我自己的虚拟键盘。我不是从零开始编程;我只是不知道从哪里开始制作像虚拟键盘这样的系统级设备。有好的文章或SDK吗? 最佳答案 您需要编写驱动程序才能真正获得虚拟键盘。不能用C#编写键盘驱动程序。驱动程序是用C(甚至不是C++;只是C)编写的,并且它们使用WindowsDriverKit为了发展。没有足够的文件,期间(你越早承认这一点越好)。如果您还没有以下书籍,请挑选一本:WindowsInternals,AdvancedWindowsDebugging,奥尼的ProgrammingtheWin

windows - TObject 虚拟方法的签名更新到 Delphi XE2

目前DelphiXE只能在我的盒子上使用,我不知道Delphi2010/XE2是否引入了一些突破性的变化。请帮我更新以下定义:TVmt=packedrecordSelfPtr:TClass;IntfTable:Pointer;AutoTable:Pointer;InitTable:PFieldTable;TypeInfo:PTypeInfo;FieldTable:Pointer;MethodTable:Pointer;DynamicTable:Pointer;ClassName:PShortString;InstanceSize:Cardinal;Parent:PClass;{$IFD

c++ - 创建虚拟设备

是否可以“即时”创建虚拟设备?(这家伙点击“新虚拟设备”按钮,输入设备名称,弹出的窗口就好像他刚刚插入了一个新设备一样)。我必须创建自定义设备驱动程序还是可以使用通用驱动程序?我应该从哪里开始(文档链接)?我的目标是模拟一个或多个虚拟游戏handle,在游戏中可见(带有自定义名称),并映射到一个或多个物理设备,如键盘和鼠标。谢谢! 最佳答案 是的,这是可能的。Windows驱动程序架构需要这样的支持,以允许USB驱动程序即时加载。您将需要一个自定义设备驱动程序。存在现有的“虚拟”设备驱动程序,例如对于NUL,但这些不是您想要的。但是

PHP fatal error : Class 'COM' not found

将PHP升级到v.5.5.1后出现此错误:Fatalerror:Class'COM'notfoundinC:\inetpub\wwwroot\ndsystems\database_engine\mssql_engine.phponline184mssql_engine.php文件中的第184行:$this->COMConnection=newCOM('ADODB.Connection');//line184try{$this->COMConnection->Open($connectionString);$this->RetrieveServerVersion();}catch(com

windows - 对于COM服务器和注册表项重定向,是否需要做文件路径重定向转换?

如果标题不太准确,请原谅。我在做一些与COM服务器和注册表重定向相关的事情时遇到了一些问题,我不太确定我的理解是否正确。希望任何人都可以分享一些关于它的信息。提前致谢。基本上,在任何人可以使用它的服务之前,一个COM服务器已经在注册表中注册了。在64位Windows操作系统上,注册表中可能有2个可能的View,一个用于默认View,另一个用于WOW64View。例如,第一个注册表项是:COMPUTER\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID{GUID}\LocalServer32,另一个是:COMPUTER\HKEY_LOCAL_MACHIN

c# - 将 USB 设备名称映射到 C# 中的 com 端口?

我有一个提供虚拟com端口的USB设备。但是,此设备不会通过COM端口“友好名称”来标识自己(例如在Windows单元管理器中)。但是它确实为USB设备提供了一个正确的名称。依次列出关联的com端口,如下所示:我希望能够通过名称(“PrologixGPIB...”)识别设备并从该名称中获取com端口号。我如何在C#/.NET中执行此操作?我能找到的唯一代码只能通过COM端口友好名称搜索,而不是USB设备名称。感谢您的宝贵时间! 最佳答案 我没有设置虚拟COM端口,所以无法检查这个,但是thisarticle中的答案之一似乎符合您的要

windows - 使用 Windows Compact 2013 Virtual PC 打开 COM 端口

HANDLEhCom=INVALID_HANDLE_VALUE;hCom=CreateFileW(L"COM1:",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);我正在尝试使用虚拟pc(WindowsEmbeddedCompact)打开计算机的COM端口。函数CreateFileW传递一个INVALID_HANDLE_VALUE。在win32上它运行完美。 最佳答案 检查HKLM\Drivers\Active下的端口名称。您可以